package com.shop.cereshop.commons.domain.im.tx.resp.video;

import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.Data;

import java.util.List;

/**
 * 媒体文件基本信息
 */
@Data
public class BasicInfo {
    
    /**
     * 媒体文件名称
     */
    @JsonProperty("Name")
    private String name;
    
    /**
     * 媒体文件描述
     */
    @JsonProperty("Description")
    private String description;
    
    /**
     * 媒体文件创建时间
     */
    @JsonProperty("CreateTime")
    private String createTime;
    
    /**
     * 媒体文件更新时间
     */
    @JsonProperty("UpdateTime")
    private String updateTime;
    
    /**
     * 媒体文件过期时间
     */
    @JsonProperty("ExpireTime")
    private String expireTime;
    
    /**
     * 媒体文件分类 ID
     */
    @JsonProperty("ClassId")
    private Long classId;
    
    /**
     * 媒体文件分类名称
     */
    @JsonProperty("ClassName")
    private String className;
    
    /**
     * 媒体文件分类路径
     */
    @JsonProperty("ClassPath")
    private String classPath;
    
    /**
     * 媒体文件封面图片地址
     */
    @JsonProperty("CoverUrl")
    private String coverUrl;
    
    /**
     * 媒体文件类型
     */
    @JsonProperty("Type")
    private String type;
    
    /**
     * 媒体文件播放地址
     */
    @JsonProperty("MediaUrl")
    private String mediaUrl;
    
    /**
     * 媒体文件来源信息
     */
    @JsonProperty("SourceInfo")
    private SourceInfo sourceInfo;
    
    /**
     * 媒体文件存储地域
     */
    @JsonProperty("StorageRegion")
    private String storageRegion;
    
    /**
     * 媒体文件标签集合
     */
    @JsonProperty("TagSet")
    private List<String> tagSet;
    
    /**
     * 媒体文件唯一标识
     */
    @JsonProperty("Vid")
    private String vid;
    
    /**
     * 媒体文件分类
     */
    @JsonProperty("Category")
    private String category;
    
    /**
     * 媒体文件状态
     */
    @JsonProperty("Status")
    private String status;
    
    /**
     * 媒体文件存储类型
     */
    @JsonProperty("StorageClass")
    private String storageClass;
    
    /**
     * 媒体文件来源信息
     */
    @Data
    public static class SourceInfo {
        /**
         * 来源类型
         */
        @JsonProperty("SourceType")
        private String sourceType;
        
        /**
         * 来源上下文
         */
        @JsonProperty("SourceContext")
        private String sourceContext;
    }
}
